package course.examples.Bluetooth.SetupAndTransferData;
import java.util.List;
import android.app.ListActivity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class ShowDevices extends ListActivity {
BluetoothAdapter mBluetoothAdapter = null;
ArrayAdapter<String> mArrayAdapter = null;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent
.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
mArrayAdapter
.add(device.getName() + "\n" + device.getAddress());
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
final ListView lv = getListView();
final TextView footer = new TextView(this);
footer.setText("Discover More Devices");
lv.setFooterDividersEnabled(true);
lv.addFooterView(footer, null, true);
final List<String> devices = getIntent().getStringArrayListExtra("devices");
mArrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item,devices);
setListAdapter(mArrayAdapter);
getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos,long id) {
if (parent.getAdapter().getItemViewType(pos) == AdapterView.ITEM_VIEW_TYPE_HEADER_OR_FOOTER) {
mBluetoothAdapter.startDiscovery();
} else {
String tmp = (String) parent.getItemAtPosition(pos);
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(tmp.split("\n")[1]);
Intent data = new Intent();
data.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
setResult(RESULT_OK, data);
finish();
}
}
});
}
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
}
protected void onPause() {
unregisterReceiver(mReceiver);
super.onPause();
}
}